#pragma once

#include "interfaceStruct.h"
#include <time.h>

typedef struct tm LocalTime;

DeviceItemsValue g_deviceItemsValue;
SensorData g_sensorData;
SwitchStatus g_switchStatus;

/* 初始化 */
int CJson_hook_init(void); // cJson init, 必须先使用该函数进行初始化

/* 接口 */
// 打包传感器数据为上行Json字串
char *PackData2UpLoadJsonString(DeviceItemsValue *itemValue, SensorData *data);
// 生成传感器心跳包
char *CreatSensorHeartbeatPacket(DeviceItemsValue *itemValue);
// 生成控制设备心跳包
char *CreatCtrHeartbeatPacket(CtrItemsValue *itemValue);
// 生成控制设备返回结果(控制反馈)包
char *CreatCtrResultPacket(CtrItemsValue *itemValue);
// 解析下行字串
void ParseCtrString(char *downStr, SwitchStatus *switchStatus);
// 解析下行字串
void ParseDownString(DeviceItemsValue *itemValue, char *downStr, SwitchStatus *switchStatus); //目前不使用

/* 其他 */
time_t LocalTime2Timestamp(LocalTime *time); // struct tm转时间戳, 时间结构体转时间戳
LocalTime *Timestamp2LocalTime(time_t time); // 时间戳转struct tm, 时间戳转时间结构体